package activiti;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;

/**
 * @Author: 蔡翔
 * @Date: 2019/9/3 9:58
 * @Version 1.0
 *
 * 删除已经部署的流程定义
 *
 *  tip：
 *      1.如果 一个 流程没有完全审批结束时不能删除。只有流程结束了才能删除部署； 删除流程部署也就是删除一个流程
 *      2.如果要强制删除。 可以使用repositoryService.deleteDeployment("1",true);
 * 第二个参数设置为true，参数为true代表级联删除，此时就会先删除没有完成E功能的流程节点，最后就可以删除流程定义信息
 *
 * 操作相关的表: (下面这些表会被清空)
 *  act_ge_bytearray
 *  act_re_deployment
 *  act_re_procdef
 */
public class DeleteProcessDefinition {
    public static void main(String[] args) {
        /**
         * 1.得到ProcessEngine对象
         * */
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

        /**
         * 2.创建RepositoryService对象
         * */
        RepositoryService repositoryService = processEngine.getRepositoryService();


        /**
         * 3.执行删除流程定义,参数代表流程部署的id
         * */
        repositoryService.deleteDeployment("1");
    }

}
